Monte Carlo Grid Scheduling Algorithm Selection Optimization

ABSTRACT

A method for utilizing the Monte Carlo method to determine the most efficient arrangement of schedulers for a grid using a Scheduler Optimization Program (SOP). The SOP obtains the schedulers and scheduler timetable from memory and randomly selects a time period and scheduler to analyze. The SOP then uses the selected scheduler to modify the scheduler timetable. The SOP then runs the ROI calculator to obtain a ROI property for the modified timetable. If the ROI property for the modified timetable is greater than the ROI property for the original scheduler timetable, the SOP replaces the scheduler timetable with the modified timetable.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a continuation application of co-pending U.S.utility patent application entitled “Monte Carlo Grid SchedulingAlgorithm Selection Optimization” filed on Jan. 13, 2004 and accordedSer. No. 10/756,112 and claims priority therefrom.

FIELD OF THE INVENTION

The present invention is related generally to methods of improving gridcomputing and specifically to an automated method for improving theselection of schedulers within a grid computing network.

BACKGROUND OF THE INVENTION

Recently, companies have begun to explore the possibilities of usinggrid computing networks (grids) to increase the company's productivity.A grid comprises a plurality of computers that are networked together.Large or complex computations (jobs) can be broken up into a pluralityof smaller, more manageable jobs by the grid. The smaller jobs are thensent out to the computers within the grid for parallel processing. Asthe individual computers complete their jobs, the grid reassembles thesmaller jobs into the completed job. The end result is that the large,complex jobs are processed in significantly less time than is possibleon a single computer.

One of the important components of a grid is the scheduler. Thescheduler is an algorithm that decides how to distribute the individualjob pieces for processing throughout the grid. Although the concept of ascheduler sounds simple, the decision-making process for distribution ofthe job pieces is extremely complex. A number of decisions must be madeas to how the scheduler chooses one grid computer over another. Thephysical distance between computers, processing speed, available memory,cost of operating grid computers, queue for each computer, the topologyof the network connectivity among the computers, special resources (i.e.hardware, software, or licenses) available on particular computers, andconnectivity between hard drives are just a few of the factors takeninto consideration in creating a scheduler. Logical factors, such as joboperating characteristics, priorities of various kinds, operationalconstraints on the utilization of the grid system, and many others, mustalso be taken into consideration by the scheduler. Thus, there are aplurality of different schedulers that can be created to distribute thejob pieces throughout the grid. Selecting the appropriate scheduler fora grid is made even more complex by the fact that the type of gridtraffic changes depending on the time of day or the day of the week,month, or year. One scheduler may be more efficient in the mornings andanother scheduler may be more efficient in the evenings. A thirdscheduler may be more efficient on the weekends or on the last day ofevery fiscal quarter. Thus, in order to operate a grid at maximumefficiency, a user will ideally change schedulers from time to time,depending on the operating conditions of the grid. It is difficult for aperson to constantly analyze and change the schedulers, so an automatedmethod is preferable. Currently, there is no automated method fordynamically or adaptively changing the selection of the schedulers tobest use at a given time interval. Consequently, a need exists for anautomated method for dynamically and adaptively changing the selectionof a scheduler in a grid computing network.

One method for measuring the efficiency of the scheduler is to run areturn on investment (ROI) calculator. An example of an ROI calculatoris described in U.S. patent application Ser. No. ______ (Attorney docketnumber AUS920030689US1) incorporated herein by reference. The ROIcalculator can calculate, using simulation and other modeling methods,the return on investment of an IT infrastructure which employs aparticular set of schedulers. The return on investment is a quantitativemeasure of how effectively the company's information technology (IT)infrastructure is implemented. The ROI calculator can also determineother properties associated with the grid such as operating efficiency,total operating cost, mean time to process individual jobs, and soforth. A user can run a ROI calculator for individual schedulers andoperating conditions to determine which scheduler is best suited forwhich operating conditions. However, as schedulers are continuouslymodified and updated, an orderly method for applying the ROI calculatorto the operating conditions and schedulers is needed. Therefore, what isneeded is a method for determining how to select the operatingconditions and schedulers using an ROI calculator as a measurement tool.

The Monte Carlo method for selecting criteria is well known in the art.The Monte Carlo method involves the random selection and application ofcriteria to a model. Proponents of the Monte Carlo method assert thatthe Monte Carlo method can be more efficient at finding near-optimumsolutions than orderly search methods for particularly difficultproblems. Schedulers and grid conditions, both being complex, are idealfor the Monte Carlo method. Therefore, what is needed is a method forapplying the Monte Carlo method to schedulers and grid conditions forevaluation by an ROI calculator in order to determine the most efficientdaily arrangement of schedulers to a grid.

SUMMARY OF THE INVENTION

The present invention, which meets the needs identified above, is amethod for utilizing the Monte Carlo method to determine the mostefficient arrangement of schedulers for a grid. The software embodimentof the present invention is a Scheduler Optimization Program (SOP). TheSOP obtains the schedulers and scheduler timetable from memory andrandomly selects a scheduler with which to modify the schedulertimetable at a randomly selected time period. The SOP assigns therandomly selected scheduler to the randomly selected time period in thescheduler timetable. The SOP compares the modified timetable to aprevious results file to determine if the modified timetable wasanalyzed in a previous iteration. If the modified timetable was analyzedin a previous iteration, then SOP proceeds with another random selectionas described above.

The SOP then runs the ROI calculator to obtain a ROI property for themodified timetable. The SOP then determines whether the ROI property forthe modified timetable is greater than the ROI property for the originalscheduler timetable. If the ROI property for the modified timetable isgreater than the ROI property for the original scheduler timetable, thenthe SOP replaces the scheduler timetable with the modified timetable.The SOP repeats the iterative process described herein until a plateauis reached. The SOP may also be configured so that the SOP takes aconfigurable number of steps away from a more desirable ROI property(i.e. a local maximum) in an attempt to eventually reach a much moredesirable ROI property (i.e. a regional or global maximum).

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives and advantages thereof, willbest be understood by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1 is an illustration of a computer network used to implement thepresent invention;

FIG. 2 is an illustration of a computer, including a memory and aprocessor, associated with the present invention;

FIG. 3 is an illustration of the logic of the Scheduler OptimizationProgram (SOP) of the present invention;

FIG. 4 is an illustration of the scheduler timetable of the presentinvention; and

FIG. 5 is an illustration of the previous results file of the presentinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

As used herein, the term “computer” shall mean a machine having aprocessor, a memory, and an operating system, capable of interactionwith a user or other computer, and shall include without limitationdesktop computers, notebook computers, personal digital assistants(PDAs), servers, handheld computers, and similar devices.

As used herein, the term “efficiency” shall mean a quantitative measureof the amount of grid resources consumed to produce a desired effect.

As used herein, the term “modified timetable” shall mean a schedulertimetable in which the scheduler in a randomly selected time period hasbeen replaced with a randomly selected scheduler.

As used herein, the term “previous results file” shall mean a computerfile containing a list of modified schedulers that were analyzed inprevious iterations of the present invention.

As used herein, the term “plateau” shall mean a state in which aniterative process no longer improves the ROI property.

As used herein, the term “ROI” is an acronym for return on investment.

As used herein, the term “ROI calculator” shall mean an algorithm forcalculating a ROI property of a grid for a given time period andscheduler.

As used herein, the term “ROI property” shall mean a quantitativemeasure of a property for a grid computing network.

As used herein, the term “scheduler” shall mean a computer algorithm fordetermining the distribution of pieces of a job in a grid.

As used herein, the term “scheduler timetable” shall mean a tablespecifying the scheduler that a grid should use for a given time period.

As used herein, the term “time period” shall mean a specific block oftime in a scheduler timetable or a modified timetable.

FIG. 1 is an illustration of computer network 90 associated with thepresent invention. Computer network 90 comprises local computer 95electrically coupled to network 96. Local computer 95 is electricallycoupled to remote computer 94 and remote computer 93 via network 96.Local computer 95 is also electrically coupled to server 91 and database92 via network 96. Network 96 may be a simplified network connectionsuch as a local area network (LAN) or may be a larger network such as awide area network (WAN) or the Internet. Furthermore, computer network90 depicted in FIG. 1 is intended as a representation of a possibleoperating network containing the present invention and is not meant asan architectural limitation.

The internal configuration of a computer, including connection andorientation of the processor, memory, and input/output devices, is wellknown in the art. The present invention is a methodology that can beembodied in a computer program. Referring to FIG. 2, the methodology ofthe present invention is implemented on software by SchedulerOptimization Program (SOP) 200. SOP 200 described herein can be storedwithin the memory of any computer depicted in FIG. 1. Alternatively, SOP200 can be stored in an external storage device such as a removabledisk, a CD-ROM, or a USB storage device. Memory 100 is illustrative ofthe memory within one of the computers of FIG. 1. Memory 100 alsocontains schedulers 120, scheduler timetable 140, previous results file160, and return on investment (ROI) calculator 180. The presentinvention may interface with schedulers 120, scheduler timetable 140,previous results file 160, and ROI calculator 180 through memory 100. Aspart of the present invention, the memory 100 can be configured with SOP200. Processor 106 can execute the instructions contained in SOP 200.Processor 106 is also able to display data on display 102 and acceptuser input on user input device 104. Processor 106, user input device104, display 102, and memory 100 are part of a computer such as localcomputer 95 in FIG. 1. Processor 106 can communicate with othercomputers via network 96.

In alternative embodiments, SOP 200 can be stored in the memory of othercomputers. Storing SOP 200 in the memory of other computers allows theprocessor workload to be distributed across a plurality of processorsinstead of a single processor. Further configurations of SOP 200 acrossvarious memories are known by persons of ordinary skill in the art. Thepresent invention may be a method, a stand alone computer program, or aplug-in to an existing computer program. Persons of ordinary skill inthe art are aware of how to configure computer programs, such as thosedescribed herein, to plug into an existing computer program.

Schedulers 120 are computer algorithms that decide where the pieces of ajob are distributed throughout the grid. For the purposes herein,schedulers 120 are represented as scheduler A, scheduler B, scheduler Cand so forth. Persons of ordinary skill in the art will appreciate thateach letter represents a scheduler with a particular configuration.Scheduler timetable 140 is a computer file that tells the grid computingsystem which scheduler to run at which times. Scheduler timetable 140may be for a day, a week, a month, a year, or any other time period asdetermined by a person of ordinary skill in the art. Previous resultsfile 160 is a listing of the modified timetables that were previouslyselected by SOP 200. ROI calculator 180 contains a mathematical model ofthe operating conditions within the grid. ROI calculator 180 calculatesa ROI property for the modified scheduler. The ROI properties includethe time for return on initial investment, the annual operating costsavings, the efficiency with which the grid is being utilized, and soforth. Persons skilled in the art are aware of other types ofcalculators that can determine ROI properties.

FIG. 3 illustrates the logic of Scheduler Optimization Program (SOP) 200of the present invention. SOP 200 is a program that uses the Monte Carlomethod to optimize the selection of schedulers 120 for the gridcomputing system. SOP 200 starts (202) anytime a user desires tooptimize scheduler timetable 140 of the present invention. SOP 200 thenobtains schedulers 120 and scheduler timetable 140 from memory (204).Scheduler timetable 140 contains the ROI property for the currentarrangement of schedulers 120 for a specific time period, such as asingle day. SOP 200 then randomly selects a time period to modify inscheduler timetable 140 (206). The time period is a specific block oftime within scheduler timetable 140 SOP 200 then randomly selects ascheduler to replace the original scheduler in a randomly selected timeperiod within scheduler timetable 140 (208). SOP 200 selects thescheduler from the plurality of schedulers 120.

SOP 200 then creates a modified timetable by inserting the randomlyselected scheduler into the randomly selected time period in thescheduler timetable (210). SOP 200 then determines whether the modifiedtimetable created in step 210 is in previous results file 160 (212). Bychecking the modified timetable against previous results file 160, thepresent invention does not run ROI calculator 180 when the presentinvention has previously run ROI calculator 180 for the same modifiedtimetable in a previous iteration of SOP 200. If the modified timetableis in previous results file 160, then SOP 200 returns to step 206. Ifthe modified timetable is not in previous results file 160, then SOP 200saves the modified timetable in previous results file 160 (214). SOP 200then runs ROI calculator 180 to obtain an ROI property for the modifiedtimetable (216). For the illustrative purposes herein, the ROI propertyis the grid efficiency. Persons of ordinary skill in the art are awarethat any of the ROI properties calculated by ROI calculator 180 can beused to optimize the selection of schedulers 120 herein.

At step 218, SOP 200 determines whether the ROI property for themodified timetable is greater than the ROI property for the originalscheduler timetable 140 (218). The term “greater than” in step 218 ismeant to mean more desirable. If the ROI property is the gridefficiency, then at step 218 SOP 200 determines whether the gridefficiency for the modified timetable is greater than the gridefficiency for the original scheduler timetable 140. If the gridefficiency for the modified timetable is not greater than the gridefficiency for the original scheduler timetable 140, then SOP 200proceeds to step 232. If the grid efficiency for the modified timetableis greater than the grid efficiency for the original scheduler timetable140, then SOP 200 replaces the original scheduler timetable 140 with themodified timetable (220). SOP 200 also replaces the original ROIproperty with the ROI property for the modified timetable calculated instep 216. Persons of ordinary skill in the art will appreciate that SOP200 could also rank the different scheduler timetables 140 and/ormodified timetables according to their ROI property and run themodification process described herein on the top N number of schedulertimetables 140 and/or modified timetables in the ranked list, wherein Nis a user-configurable number. The present may also be embodied suchthat a random scheduler is selected to replace a scheduler in a randomtime period in a randomly selected scheduler timetable 140 or modifiedtimetable in the ranked list.

SOP 200 then determines whether a plateau has been reached for schedulertimetable 140 (222). A plateau may be reached whenever SOP 200 has notmodified scheduler timetable 140 in a certain number (i.e. one thousand)of iterations. Alternatively, a user of the present invention may definewhen a plateau is reached, such as when scheduler timetable 140 has notproduced an improved ROI property after a configurable number ofattempts or has an acceptable ROI property. Further in the alternative,a user of the present invention may choose to stop the iterative processof SOP 200 by manually indicating that a plateau has been reached. Ifthe present invention is performing the modification process on a rankedlist of scheduler timetables 140 and/or modified timetables, then aplateau may be defined as a user-configurable number of attempts inwhich the top N timetables have not changed, N being a user-configurablenumber. Persons of ordinary skill in the art are aware of other methodsof determining if a plateau has been reached. If a plateau has not beenreached, SOP 200 returns to step 206. If a plateau has been reached, SOP200 proceeds to step 224.

Steps 202 through 222 of SOP 200 of the present invention continuouslyseek to improve the grid computing network by improving the ROIproperty. However, the present invention may be configured such that SOP200 takes a user-configurable number of steps towards a less desirableresult in an effort to ultimately achieve a more desirable result. As ananalogy, if a person only goes uphill, then the person will make it tothe top of the hill he is on, but he will never reach the top of thehighest hill in the area (unless he happens to have climbed the highesthill in the area the first time). In order to reach the top of thehighest hill in the area, the person must descend and traverse a valleybefore climbing a new hill. In order to retain the ability to achieve apossibly superior result, a person of ordinary skill in the art willappreciate that SOP 200 can be configured so that SOP 200 takes auser-configurable number of steps towards an undesirable result in orderto possibly achieve a much more desirable result. Steps 224 through 240of SOP 200 illustrate the process of taking steps towards theundesirable result.

At step 224, SOP 200 determines if the user has indicated a desire totake steps away from the plateau (224). If the user has indicated adesire to take steps away from the plateau, the user will also specifyhow many steps to take away from the plateau. If the user has notindicated a desire to take steps away from the plateau, SOP 200 ends(226). If the user has indicated a desire to take steps away from theplateau, then SOP 200 randomly selects a time period to modify inscheduler timetable 140 (228). SOP 200 then randomly selects a schedulerto replace the original scheduler in a randomly selected time periodwithin scheduler timetable 140 (230). SOP 200 then creates a modifiedtimetable by inserting the randomly selected scheduler into the randomlyselected time period in the scheduler timetable (232). SOP 200 then runsROI calculator 180 to obtain an ROI property for the modified timetable(234), and proceeds to step 236.

At step 236, SOP 200 determines whether the ROI property for themodified timetable is greater than the ROI property for the originalscheduler timetable 140 (236). If the ROI property for the modifiedtimetable is greater than the ROI property for the original schedulertimetable 140, then SOP 200 proceeds to step 240. If the grid efficiencyfor the modified timetable is not greater than the grid efficiency forthe original scheduler timetable 140, then SOP 200 replaces the originalscheduler timetable 140 with the modified timetable (238). SOP 200 alsoreplaces the original ROI property with the ROI property for themodified timetable calculated in step 234. SOP 200 then determines ifSOP 200 has reached the user-configured number of backwards steps (240).If SOP 200 has not reached the user-configured number of backwardssteps, SOP 200 returns to step 228. If SOP 200 has reached theuser-configured number of backwards steps, SOP 200 returns to step 206.If desired, the results from the actual grid operation using aparticular scheduler can be saved and compared against the ROIcalculator's 180 estimate. Adjustments can then be made to ROIcalculator's 180 template in order to improve the accuracy of ROIcalculator 180. Persons skilled in the art will recognize that steps 224through 240 may be included in SOP 200 prior to a plateau being reachedand, if so, these steps may be implemented on a random basis. Inaddition, the user configurable number of steps may be replaced by arandomly determined number of steps.

SOP 200 of the present invention modifies scheduler timetable 140 with anew scheduler 120 and calculates the ROI property for the entiremodified scheduler. It is possible that a similar result may be achievedby dividing the scheduler timetable 140 into a plurality of short timeperiods, each with one scheduler 120, and running the ROI calculator onthe individual scheduler timetable pieces. However, the describedembodiment is preferable to an embodiment in which the schedulertimetable 140 is divided into a plurality of short time periods becausethe selection of one scheduler 120 affects the performance of subsequentschedulers 120. For example, scheduler B may be very efficient atprocessing memory intensive jobs. If scheduler A is operating beforescheduler B and prioritizes memory intensive jobs, then when scheduler Bcomes online, there are relatively few memory intensive jobs andscheduler B's efficiency is low. Conversely, if scheduler C is operatingbefore scheduler B and prioritizes processor intensive jobs, then whenscheduler B comes online, there may be many memory intensive jobs andscheduler B's efficiency is high. Thus, the performance of any onescheduler 120 is dependent on the type of jobs that remain after theprevious scheduler 120 is taken offline. Therefore, the evaluation ofscheduler timetable 140 as a whole is preferable.

FIG. 4 illustrates scheduler timetable 140 of the present invention.Scheduler timetable 140 comprises three rows: time 142, scheduler 144,and ROI property 146. Time 142 is the specific time period ofimplementation of scheduler 120. Scheduler 144 indicates which specificscheduler 120 will be implemented at the appropriate time 142. ROIproperty 146 is the ROI property that is used in step 218 of SOP 200. InFIG. 4, ROI property 146 is the grid network efficiency.

FIG. 5 illustrates previous results file 160. Previous results file 160comprises modified timetable ID 161, time 162, and scheduler 164.Modified timetable ID 161 is a counter used to distinguish individualmodified timetables from each other. Time 162 and scheduler 164 are thecomponents of a modified timetable, similar to scheduler timetable 140depicted in FIG. 4. Time 162 is the time period for the modifiedtimetable. Time 162 is like time 142 in FIG. 4. Scheduler 164 isscheduler 120 for the modified timetable. Scheduler 164 is likescheduler 144 in FIG. 4.

With respect to the above description, it is to be realized that theoptimum dimensional relationships for the parts of the invention, toinclude variations in size, materials, shape, form, function, manner ofoperation, assembly, and use are deemed readily apparent and obvious toone of ordinary skill in the art. The present invention encompasses allequivalent relationships to those illustrated in the drawings anddescribed in the specification. The novel spirit of the presentinvention is still embodied by reordering or deleting some of the stepscontained in this disclosure. The spirit of the invention is not meantto be limited in any way except by proper construction of the followingclaims.

1. A method for optimizing an allocation of a plurality of schedulerswithin a grid computing network wherein the allocation is determined bya return on investment calculator.
 2. A method of claim 1 comprising:selecting a first scheduler; obtaining a first scheduler timetable and afirst scheduler timetable return on investment property; creating asecond scheduler timetable by modifying the first scheduler timetablewith the first scheduler; running the return on investment calculator toobtain a second scheduler return on investment property; determiningwhether the second scheduler timetable return on investment property isgreater than the first scheduler timetable return on investmentproperty; and responsive to the determination that the second schedulertimetable return on investment property is greater than the firstscheduler timetable return on investment property, replacing the firstscheduler timetable with the second scheduler timetable.
 3. The methodof claim 2 further comprising: responsive to the determination that thesecond scheduler timetable return on investment property is greater thanthe first scheduler timetable return on investment property, replacingthe first scheduler timetable return on investment property with thesecond scheduler timetable return on investment property.
 4. The methodof claim 2 further comprising: determining whether the second schedulertimetable is in a previous results file; and responsive to thedetermination that the second scheduler timetable is not in the previousresults file, saving the second scheduler timetable in the previousresults file and performing the steps in claim
 2. 5. The method of claim2 further comprising: determining whether the second scheduler timetableis in a previous results file; and responsive to the determination thatthe second scheduler timetable is in the previous results file,selecting a new first scheduler.
 6. The method of claim 2 furthercomprising: determining if a plateau has been reached; and responsive tothe determination that the plateau has not been reached, repeating thesteps of claim
 2. 7. The method of claim 2 wherein the selection of afirst time period and the first scheduler is random.
 8. The method ofclaim 2 further comprising: taking a user configurable number of stepsaway from a greater return on investment property, and then repeatingthe steps in claim
 2. 9. The method of claim 8 wherein the step oftaking a user configurable number of steps away from a greater return oninvestment property comprises: accepting a user-configurable number ofbackward steps; taking a backward step comprising: selecting a firstscheduler; obtaining a first scheduler timetable and a first schedulertimetable return on investment property; creating a second schedulertimetable by modifying the first scheduler timetable with the firstscheduler; running the return on investment calculator to obtain asecond scheduler return on investment property; determining whether thesecond scheduler timetable return on investment property is greater thanthe first scheduler timetable return on investment property; andresponsive to the determination that the second scheduler timetablereturn on investment property is not greater than the first schedulertimetable return on investment property, replacing the first schedulertimetable with the second scheduler timetable.
 10. The method of claim 9wherein taking the backward step further comprising: responsive to thedetermination that the second scheduler timetable return on investmentproperty is not greater than the first scheduler timetable return oninvestment property, replacing the first scheduler timetable return oninvestment property with the second scheduler timetable return oninvestment property.
 11. The method of claim 9 further comprising:determining whether the number of backward steps taken equals theuser-configurable number of backward steps; responsive to thedetermination that the number of backward steps taken equals theuser-configurable number of backward steps, repeating the steps in claim2.
 12. The method of claim 9 further comprising: determining whether thenumber of backward steps taken equals the user-configurable number ofbackward steps; responsive to the determination that the number ofbackward steps taken does not equal the user-configurable number ofbackward steps, repeating the steps in claim
 9. 13. A program productfor optimizing an allocation of a plurality of schedulers within a gridcomputing network wherein the allocation is determined by a return oninvestment calculator.
 14. A program product of claim 13 comprising: acomputer-usable medium; wherein the computer usable medium comprisesinstructions comprising: instructions for selecting a first scheduler;instructions for obtaining a first scheduler timetable and a firstscheduler timetable return on investment property; instructions forcreating a second scheduler timetable by modifying the first schedulertimetable with the first scheduler; instructions for running the returnon investment calculator to obtain a second scheduler return oninvestment property; instructions for determining whether the secondscheduler timetable return on investment property is greater than thefirst scheduler timetable return on investment property; and responsiveto the determination that the second scheduler timetable return oninvestment property is greater than the first scheduler timetable returnon investment property, instructions for replacing the first schedulertimetable with the second scheduler timetable.
 15. The program productof claim 14 further comprising: responsive to the determination that thesecond scheduler timetable return on investment property is greater thanthe first scheduler timetable return on investment property,instructions for replacing the first scheduler timetable return oninvestment property with the second scheduler timetable return oninvestment property.
 16. The program product of claim 14 furthercomprising: instructions for determining whether the second schedulertimetable is in a previous results file; and responsive to thedetermination that the second scheduler timetable is not in the previousresults file, instructions for saving the second scheduler timetable inthe previous results file and performing the steps in claim
 14. 17. Theprogram product of claim 14 further comprising: instructions fordetermining whether the second scheduler timetable is in a previousresults file; and responsive to the determination that the secondscheduler timetable is in the previous results file, instructions forselecting a new first scheduler.
 18. The program product of claim 14further comprising: instructions for determining if a plateau has beenreached; and responsive to the determination that the plateau has notbeen reached, instructions for repeating the steps of claim
 14. 19. Theprogram product of claim 14 wherein the selection of a first time periodand the first scheduler is random.
 20. The program product of claim 14further comprising: taking a user configurable number of steps away froma greater return on investment property, and then repeating the steps inclaim
 14. 21. The program product of claim 20 wherein the step of takinga user configurable number of steps away from a greater return oninvestment property comprises: instructions for accepting auser-configurable number of backward steps; instructions for taking abackward step comprising: instructions for selecting a first scheduler;instructions for obtaining a first scheduler timetable and a firstscheduler timetable return on investment property; instructions forcreating a second scheduler timetable by modifying the first schedulertimetable with the first scheduler; instructions for running the returnon investment calculator to obtain a second scheduler return oninvestment property; instructions for determining whether the secondscheduler timetable return on investment property is greater than thefirst scheduler timetable return on investment property; and responsiveto the determination that the second scheduler timetable return oninvestment property is not greater than the first scheduler timetablereturn on investment property, instructions for replacing the firstscheduler timetable with the second scheduler timetable.
 22. The programproduct of claim 21 wherein taking the backward step further comprising:responsive to the determination that the second scheduler timetablereturn on investment property is not greater than the first schedulertimetable return on investment property, instructions for replacing thefirst scheduler timetable return on investment property with the secondscheduler timetable return on investment property.
 23. The programproduct of claim 21 further comprising: instructions for determiningwhether the number of backward steps taken equals the user-configurablenumber of backward steps; responsive to the determination that thenumber of backward steps taken equals the user-configurable number ofbackward steps, instructions for repeating the steps in claim
 14. 24.The program product of claim 21 further comprising: instructions fordetermining whether the number of backward steps taken equals theuser-configurable number of backward steps; responsive to thedetermination that the number of backward steps taken does not equal theuser-configurable number of backward steps, instructions for repeatingthe steps in claim
 21. 25. An apparatus for optimizing an allocation ofa plurality of schedulers within a grid computing network wherein theallocation is determined by a return on investment calculatorcomprising: means for selecting a first scheduler; means for obtaining afirst scheduler timetable and a first scheduler timetable return oninvestment property; means for creating a second scheduler timetable bymodifying the first scheduler timetable with the first scheduler; meansfor selecting a first time period; means for determining whether thefirst time period coincides with a second time period in the firstscheduler timetable; responsive to the determination that the first timeperiod does not coincide with the second time period, means for dividingthe first time period and the second time period so that the first timeperiod and the second time period coincide; means for determiningwhether the second scheduler timetable is in a previous results file;and responsive to the determination that the second scheduler timetableis in the previous results file, means for selecting a new firstscheduler; responsive to the determination that the second schedulertimetable is not in the previous results file, means for saving thesecond scheduler timetable in the previous results file; means forrunning the return on investment calculator to obtain a second schedulerreturn on investment property; means for determining whether the secondscheduler timetable return on investment property is greater than thefirst scheduler timetable return on investment property; responsive tothe determination that the second scheduler timetable return oninvestment property is greater than the first scheduler timetable returnon investment property, means for replacing the first schedulertimetable with the second scheduler timetable; responsive to thedetermination that the second scheduler timetable return on investmentproperty is greater than the first scheduler timetable return oninvestment property, means for replacing the first scheduler timetablereturn on investment property with the second scheduler timetable returnon investment property; and wherein the selection of a first time periodand the first scheduler is random.
 26. The apparatus of claim 17 furthercomprising: means for determining if a plateau has been reached; andresponsive to the determination that the plateau has not been reached,means for repeating the steps of claim
 17. 27. The apparatus of claim 17further comprising: means for taking a user configurable number of stepsaway from a greater return on investment property, and then repeatingthe steps in claim
 17. 28. The apparatus of claim 27 wherein the step oftaking a user configurable number of steps away from a greater return oninvestment property comprises: means for accepting a user-configurablenumber of backward steps; means for taking a backward step comprising:means for selecting a first scheduler; means for obtaining a firstscheduler timetable and a first scheduler timetable return on investmentproperty; means for creating a second scheduler timetable by modifyingthe first scheduler timetable with the first scheduler; means forrunning the return on investment calculator to obtain a second schedulerreturn on investment property; means for determining whether the secondscheduler timetable return on investment property is greater than thefirst scheduler timetable return on investment property; and responsiveto the determination that the second scheduler timetable return oninvestment property is not greater than the first scheduler timetablereturn on investment property, means for replacing the first schedulertimetable with the second scheduler timetable.
 29. The apparatus ofclaim 28 wherein taking the backward step further comprising: responsiveto the determination that the second scheduler timetable return oninvestment property is not greater than the first scheduler timetablereturn on investment property, means for replacing the first schedulertimetable return on investment property with the second schedulertimetable return on investment property.
 30. The apparatus of claim 28further comprising: means for determining whether the number of backwardsteps taken equals the user-configurable number of backward steps;responsive to the determination that the number of backward steps takenequals the user-configurable number of backward steps, means forrepeating the steps in claim
 25. 31. The apparatus of claim 28 furthercomprising: means for determining whether the number of backward stepstaken equals the user-configurable number of backward steps; responsiveto the determination that the number of backward steps taken does notequal the user-configurable number of backward steps, means forrepeating the steps in claim 28.